package top.hkyzf.study.j2se.syy.bill;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 账单明细类
 * @author 朱峰
 * @date 2021-6-24 15:08
 */
public class ConcreteBill extends Bill {
    // 这笔消费的各个商品信息
    List<Goods> list = new ArrayList<Goods>();

    /**
     * 往账单添加商品
     * @param goods 商品
     */
    public void addBill(Goods goods) {
        list.add(goods);
    }

    float getTotal(){
        // 声明一个变量存最后的结果
        float sum = 0.0f;

        for (Goods good : list) {
            // 这里每循环一个物品就加一下
            sum = sum + good.getQuantity() * good.getPrice();
        }

        return sum;
    };

    // 重写打印账单的方法，打印账单明细
    @Override
    public void printBill() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String now = sdf.format(new Date());
        System.out.println("     打印日期：" + now);
        System.out.println("-----------------------------------");
        System.out.println("品名\t\t数量\t单价\t小计");
        System.out.println("-----------------------------------");
        for (Goods good : list) {
            System.out.println(good.getItem() + "\t\t" + good.getQuantity() + "\t" + good.getPrice() + " \t" + good.getQuantity() * good.getPrice());
        }
        System.out.println("-----------------------------------");
        // 最后输出
        System.out.println("合计：" + getTotal());
    }
}
